﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	[DataContract]
	public enum СообщенияДляРегОтчетов
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"f792b691-d177-4571-8a93-fdfe8bdbf7ae\", \"Представление\":\"СдачаОтчета\"}")]
		СдачаОтчета = 0,//Сдача отчета
		[EnumMember(Value = "{\"Ссылка\":\"7f6826f8-6184-4540-a95c-bfcb916250b9\", \"Представление\":\"УплатаНалога\"}")]
		УплатаНалога = 1,//Уплата налога
	}
	public static partial class СообщенияДляРегОтчетов_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid СдачаОтчета = new Guid("fefd938a-db8b-aef7-4571-d177f792b691");//Сдача отчета
		public static readonly Guid УплатаНалога = new Guid("cbbf5ca9-6291-b950-4540-61847f6826f8");//Уплата налога
		public static СообщенияДляРегОтчетов Получить(this СообщенияДляРегОтчетов Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static СообщенияДляРегОтчетов Получить(this СообщенияДляРегОтчетов Значение, Guid Ссылка)
		{
			if(Ссылка == СдачаОтчета)
			{
				return СообщенияДляРегОтчетов.СдачаОтчета;
			}
			else if(Ссылка == УплатаНалога)
			{
				return СообщенияДляРегОтчетов.УплатаНалога;
			}
			return СообщенияДляРегОтчетов.ПустаяСсылка;
		}
		public static byte[] Ключ(this СообщенияДляРегОтчетов Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this СообщенияДляРегОтчетов Значение)
		{
			switch (Значение)
			{
				case СообщенияДляРегОтчетов.СдачаОтчета: return СдачаОтчета;
				case СообщенияДляРегОтчетов.УплатаНалога: return УплатаНалога;
			}
			return Guid.Empty;
		}
	}
}